package com.cn.wanxi.thread.phone;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 * 手机100部
 */
public class MyPhone implements Runnable {
    // 手机的数量
    private int phoneNum = 100;
    private String door = "aa";

    @Override
    public void run() {
// 因为我们不知道什么时候预定完，所以需要设定一个条件退出
        while (true) {
//            try {
//                Thread.sleep(100);//线程睡眠
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//            每一个进来拿完手机后告诉别人可以进来了
//            门 --显示 提醒别人
//            同步锁
//            影响性能--一个一个执行
//
//            synchronized ("aa") {
            Lock lock = new ReentrantLock();
            lock.lock();
            if (phoneNum > 0) {
                System.out.println(Thread.currentThread().getName() + "卖出了一部手机，还剩余" + --phoneNum + "部手机");
            } else {
                System.out.println("很遗憾，手机已经全部预定完，请下次再来");
                return;
            }
//            }
            lock.unlock();

        }

    }
}